/**
 *Copyright (c) 2024 watereyes
 * safetymanagement is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.report.mapper;

import com.koron.report.bean.EventAnalysis;
import com.koron.system.domain.DictData;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;

public interface EventDataAnalysisMapper {

    /**
     * 根据水司事件统计
     * @param dataList
     * @param codeList
     * @param beginTime
     * @param endTime
     * @return
     */
    LinkedHashMap<String,Object>queryCountEventForCorp(@Param("dataList") List<DictData> dataList, @Param("codeList") List<String> codeList, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    /**
     * 根据部门事件统计
     * @param dataList
     * @param codeList
     * @param beginTime
     * @param endTime
     * @return
     */
    LinkedHashMap<String,Object>  queryCountEventForDepartmentCode(@Param("dataList") List<DictData> dataList,@Param("codeList") List<String> codeList, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    /**
     * 根据水司事故统计
     * @param dataList
     * @param codeList
     * @param beginTime
     * @param endTime
     * @return
     */
    LinkedHashMap<String,Object> queryCountAccidentForCorp(@Param("dataList") List<DictData> dataList,@Param("codeList") List<String> codeList, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    /**
     * 根据部门事故统计
     * @param dataList
     * @param codeList
     * @param beginTime
     * @param endTime
     * @return
     */
    LinkedHashMap<String,Object> queryCountAccidentForDepartmentCode(@Param("dataList") List<DictData> dataList,@Param("codeList") List<String> codeList, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    /**
     * 根据水司统计损工时总数
     * @param codeList
     * @param years
     * @return
     */
    EventAnalysis queryCountWorkTimeForCorp(@Param("codeList") List<String> codeList, @Param("years") String years);

    /**
     * 根据部门统计损工时总数
     * @param codeList
     * @param years
     * @return
     */
    EventAnalysis queryCountWorkTimeForDepartmentCode(@Param("codeList") List<String> codeList, @Param("years") String years);
}
